package String_4_20;

//  String类的常用方法
//  1.int length()                            返回当前字符串的长度，即字符窜中字符的个数
//  2.int indexOf(int ch)                     返回指定字符ch在当前字符串中第一次出现的位置（索引）
//  3.int lastIndexOf(int ch)                 返回指定字符ch在当前字符串中最后一次出现的位置
//  4.int indexOf(String str)                 返回指定子字符串str在当前字符串中第一次出现的位置
//  5.int lastIndexOf(String str)             返回指定子字符串str在当前字符串中最后一次出现的位置
//  6.char charAt(int index)                  返回当前字符串中index位置上的字符，其中index的取值范围是0~（字符串长度-1）
//  7.boolean endsWith(String suffix)         判断当前字符串是否以指定的字符串suffix结尾
//  8.boolean equals(Object obj)              比较obj与当前字符串的内容是否相同
//  9.boolean equalsIgnoreCase(String str)    以忽略大小写的方式比较str与当前字符串的内容是否相同
//  10.int compareTo(String str)              按对应字符的Unicode编码比较str与当前字符串的大小。
//                                              若当前字符串比str大，返回正整数；
//                                              若当前字符串比str小，返回负整数；
//                                              若两者相等，返回0
//  11.int compareToIgnoreCase(String str)    按对应字符的Unicode编码以忽略大小写的方式比较str与当前字符串的大小。
//                                              若当前字符串比str大，返回正整数；
//                                              若当前字符串比str小，返回负整数；
//                                              若两者相等，返回0
//  12.boolean isEmpty()                      判断字符串长度是否为0。如果为0，返回true；否则返回flase
//  13.boolean startsWith(String prefix)      判断当前字符串是否以指定的字符串prefix开始
//  14.boolean contains(CharSequence cs)      判断当前字符串中是否包含指定的字符序列cs
//  15.String toLowerCase()                   使用默认语言环境的规则将当前字符串中的所有字母都转换为小写
//  16.String toUpperCase()                   使用默认语言环境的规则将当前字符串中的所有字母都转换为大写
//  17.static String valueOf(int i)           将int变量i转换为字符串
//  18.char[] toCharArray()                   将当前字符串转换为一个字符数组
//  19.String replace(CharSequence oldstr,CharSequence newstr)  使用newstr替换当前字符串中的oldstr，返回一个新的字符串
//  20.String concat(String str)              将指定的字符串str连接到当前字符串的末尾
//  21.String[] split(String regex)           根据参数regex将当前字符串分割为若干子字符串
//  22.String substring(int beginIndex)       返回一个新字符串，它包含从指定的beginIndex处开始，直到当前字符串末尾的所有字符
//  23.String substring(int beginIndex, int endIndex)  返回一个新字符串，它包含从指定的beginIndex处开始，直到索引到endIndex-1处的所有字符
//  24.String trim()                           去掉当前字符串首位的空格
public class Test2 {
    public static void main(String[] args) {

        //1.获取字符串长度以及访问字符串中的字符
        /*
        String s = "abcdefabcdef";
        System.out.println("字符串的长度为：" + s.length());
        System.out.println("字符串中第一个字符为：" + s.charAt(0));
        System.out.println("字符c第一次出现的位置" + s.indexOf("c"));
        System.out.println("字符对应编码第一次出现的位置：" + s.indexOf(98));
        System.out.println("字符对应编码最后一次出现的位置：" + s.lastIndexOf(98));//"b"
        System.out.println("字符c最后一次出现的位置：" + s.lastIndexOf("c"));
        System.out.println("子字符串ab第一次出现的位置：" + s.indexOf("ab"));
        System.out.println("子字符串ab最后一次出现的位置：" + s.lastIndexOf("ab"));
        */

        //2.字符串的转换操作
        /*
        String str = "abcde";
        System.out.print("将字符串转换为字符数组后的结果：");
        char[] charArray = str.toCharArray();  //转换为字符数组
        for (int i = 0; i < charArray.length; i++) {
            if(i != charArray.length - 1){
                //如果不是最后一个元素，在元素后面加逗号
                System.out.print(charArray[i] + ",");
            }else {
                //如果是最后一个元素，则不加逗号
                System.out.println(charArray[i]);
            }
        }
        System.out.println("将int值转换为String类型后的结果：" + String.valueOf(12));
        System.out.println("将字符串转换为大写之后的结果：" + str.toUpperCase());
        System.out.println("将字符串转换为小写之后的结果：" + str.toLowerCase());
         */

        //3.字符串的替换和去除空格操作
        /*
        String s = "itcast";
        //字符串替换操作
        System.out.println("将it替换成cn.it的结果：" + s.replace("it","cn.it"));
        //字符串去除空格操作
        String s1 = "   i t c a s t   ";
        System.out.println("去除字符串两端空格后的结果：" + s1.trim());
        System.out.println("去除字符串所有空格后的结果：" + s1.replace(" ",""));
        */

        //4.字符串判断
        //注意：判断两个字符串是否相同时不可以用 == (==用来判断地址，因为这是两个对象）
        /*
        String s1 = "String";     //定义字符串
        String s2 = "string";
        System.out.println("判断s1字符串对象是否以Str开头：" + s1.startsWith("Str"));
        System.out.println("判断s1字符串是否以ng结尾：" + s1.endsWith("ng"));
        System.out.println("判断是否包含字符串tri：" + s1.contains("tri"));
        System.out.println("判断字符串是否为空：" + s1.isEmpty());
        System.out.println("忽略大小写的情况下判断s1和s2是否相同：" + s1.equalsIgnoreCase(s2));
        System.out.println("按对应字符的Unicode比较s1和s2的大小：" + s1.compareTo(s2));
         */

        //5.字符串的截取和分割操作
        String str = "石家庄-武汉-哈尔滨";
        //下面是截取字符串的操作
        System.out.println("从第5个字符截取到末尾的结果：" + str.substring(4));
        System.out.println("从第5个字符串截取到第6个字符串的结果：" + str.substring(4,6));
        //下面是字符串分割操作
        System.out.print("分割后的字符串数组中的元素依次为：");
        String[] strArray = str.split("-");//将字符串转换为字符数组
        for (int i = 0; i < strArray.length; i++) {
            if(i != strArray.length - 1){
                //如果不是数组的最后一个元素，在元素后面加逗号
                System.out.print(strArray[i] + ",");
            }else{
                //数组的最后一个元素后面不加逗号
                System.out.print(strArray[i]);
            }
        }
    }
}
